In recent years, Web service technologies have advanced rapidly along with speedy development of computer and network technologies. Web service technologies have become a predominant technology foundation and platform for development of applications. Web services have been supported by major corporations in the industry, e.g., IBM, Microsoft, BEA, etc., due to their advantages of easy encapsulation, loose coupling, utilization of standard protocol specifications and the ability of being highly integrated. International standardization organizations including the World Wide Web Consortium (W3C), the Organization for the Advancement of Structured Information Standards (OASIS), have established several standard specifications to thereby impel rapid development of relevant technologies and applications. A Web service which is a stand-alone modular application describes operations to be executed or data to be exchanged with another Web service using protocols based on the eXtensible Markup Language (XML) and typically fails to satisfy operation requirements of a business process by itself. In order to cater to increasingly complex and changing business requirements, Web services are needed to be linked together into a business process to achieve a more sophisticated function. A business process specifies a possible order in which operations of a set of Web services are executed, data shared among these Web services, and is executed automatically by a process execution engine for achieving automation as much as possible.
SOA-based process engines have been in increasingly wide use along with development of Web technologies. More and more enterprises or corporations disclose complex systems as Web services and automate business processes by means of process engines. These process engines usually guide execution of processes with use of the Business Process Execution Language (BPEL) and describe services with use of the Web Service Description Language (WSDL). The BPEL is an XML-based work flow definition language, which was initially developed jointly by Microsoft, IBM and BEA. It has a basic function of choreography and coordinating of Web services to deploy their cooperative and transactional behaviors. The BPEL describes internal processes of an enterprise in XML so that business processes originally established on different products can also enable across-platform intercommunicating in the same way as Web services do. When a process engine is intended to execute a work flow described in the developed BPEL, or more particularly described in the Business Process Execution Language for Web Services (BPEL4WS), the process engine usually needs to invoke atomic services or external services provided by various Web service providers or various platforms or systems. In the case of utilizing a SOA solution and the BPEL4WS, invoking of several Web services often occurs in a process instance and business process choreographies are widely adopted in enterprise systems.
When invoking a Web service, request and response messages are always Simple Object Access Protocol (SOAP) messages. Multi-round composition and decomposition of SOAP messages will inevitably occur in a business process. That is to say, composition and decomposition of SOAP messages are the basis of invoking of a Web service, and composition of SOAP messages in the XML will occur many times in a process instance. In many existing process engines, all SOAP messages in a process instance are composed independently during execution of the process. However, composition of SOAP messages in the XML is a very frequently occurring and time-consuming character string processing task. That is, composition of SOAP messages is one of major causes resulting in delay in invoking a business process. Moreover, at the service level, a long response time to a Web service may degrade satisfaction of customers, and the Web service often cannot be offered to a sufficient number of concurrent users due to limited resources. Therefore, it is highly desirable to address the problem of how to enable a process engine to reduce the time required for composition of SOAP messages during the execution of a process, thereby optimizing performance of the process engine.